home *** CD-ROM | disk | FTP | other *** search
/ Utilities Professional 1-1500 / Utilities Professional 1-1500 (1994)(WPD)[!].iso / 12511500 / var1444.dms / var1444.adf / Docs / Hce.doc < prev    next >
Text File  |  1992-09-02  |  70KB  |  1,526 lines

  1. ========================================================================
  2.   
  3.                          HCE version 1.0
  4.               C Compiler envirenment for the Amiga
  5.                          by Jason Petty.
  6.  
  7. ========================================================================
  8.  
  9.                          Table of Contents
  10.  
  11.           Disk Contents .............................. L30
  12.           Installation ............................... L188
  13.           Getting Started ............................ L239
  14.           Text Handling .............................. L292
  15.           File Requester ............................. L385
  16.           Menus ...................................... L442
  17.           Gadget Bar ................................. L771
  18.           Compiler ....................................L816
  19.           Compiler Options ........................... L893
  20.           Optimizer Options .......................... L1026
  21.           Assembler Options .......................... L1104
  22.           Linker Options ............................. L1170
  23.           Preferences ................................ L1337
  24.           Key Short Cuts ............................. L1417
  25.           Improvements ............................... L1503
  26.  
  27. ========================================================================
  28.  
  29. ************************************************************************
  30. *                           DISK CONTENTS                              *
  31. ************************************************************************
  32.  
  33. (ZC)   below  = came from the ZC distribution, from Fish disk 314.
  34. (HCC)  .....  = came from the HCC distribution, from Fish disk 508.
  35. (PDC)  .....  = came from the PDC distribution, from Fish disk 351.
  36. (info) .....  = An '.info' icon file exists with the same name.
  37.  
  38. (Disk) HCE:
  39.  
  40.           Drives_1 (info)    - Install Hce to a single drive amiga.
  41.           Drives_2 (info)    - Install Hce to a two drive amiga.
  42.           HD0 (info)         - Install Hce to a hard drive amiga.
  43.           Hce_1MB (info)     - Run Hce on a 1MB amiga from workbench.
  44.           Hce_1MB.script     - script used by above.
  45.           Hce_2MB (info)     - Run Hce on a 2MB amiga from workbench.
  46.           Hce_2MB.script     - script used by above.
  47.           LibSource.LZH      - Source to the C libraries in compressed form.
  48.           Readme.doc (info)  - Copyrights, Requirments and Introduction.
  49.  
  50.           (Dir) bin/
  51.                    HCE   (ME/HCC) - The main Compiler/Editor program.
  52.                    TOP   (HCC)    - Optimizer
  53.                    A68K  (HCC)    - Assembler
  54.                    BLINK (HCC)    - Linker
  55.  
  56.           (Dir)(ZC) include/clib/
  57.                     ar.h       - Archive header format
  58.                     assert.h
  59.                     basepage.h - Definitions for basepage header
  60.                     ctype.h    - Character classification and conversion
  61.                     errno.h    - System error codes
  62.                     fcntl.h
  63.                     limits.h   - Max size definitions for types
  64.                     macros.h   - Commonly used macros
  65.                     math.h     - Prototypes and definitions for math.lib
  66.                     setjmp.h   - Structure required for setjmp(),longjmp()
  67.                     stat.h
  68.                     stdarg.h
  69.                     stddef.h   - Standard definitions.(included by stdio.h)
  70.                     stdio.h    - Prototypes and definitions for stdio.lib
  71.                     stdlib.h   - Prototypes and definitions for misc.lib
  72.                     string.h   - Prototypes for string.lib
  73.                     time.h     - Time/Date related definitions.(misc.lib)
  74.                     types.h    - Type definitions.(VOID,ulong,ushort etc)
  75.  
  76.           (Dir) Install/
  77.                    Drives1.script    - Used by Drives_1. see above.
  78.                    Drives2.script    - Used by Drives_2. see above.
  79.                    HardDrive0.script - Used by HD0. see above.
  80.  
  81.           (Dir) (ME/ZC/PDC) lib/
  82.                    Ami.lib    - Kickstart release 2.04 Version of Amiga.lib
  83.                    Math.lib   - Library interface to Motorola fast floating
  84.                                 point library supplied by Commodore.
  85.                    Misc.lib   - Contains main.c,envirenment.c etc.
  86.                    Stdio.lib  - Standard I/O functions, printf,scanf etc.
  87.                    String.lib - Many string related functions.
  88.                    begin.o    - Startup code.
  89.  
  90.           (Dir) s/
  91.                    Script files for startup and system-configuration file 
  92.                    for after installation.
  93.  
  94. (Disk) HceSrc:
  95.  
  96.               (Dir)(info) HCE/
  97.                         HCE.LL            - Link List used by Hce to link Hce.
  98.                         Readme.1st (info) - Copyright.
  99.                         Readme.doc (info) - Explanation on how to make Hce.
  100.                         
  101.                         (Dir) HCC/
  102.                                    Source code to the compiler.
  103.                                    Hcc.CL - Compile List.
  104.                         (Dir) HCE/
  105.                                    Source code to the editor.
  106.                                    Hce.CL - Compile List.
  107.               (Dir)(info) Top/
  108.                         Readme.doc (info) - Explanation on how to make Top.
  109.                         Top.LL            - Link List used by Hce to link Top.
  110.                         Top.CL
  111.                         (Dir) Source/ 
  112.                                      Source code to the optimizer.
  113.  
  114. (Disk) LibSrc:
  115.               Readme.1st (info) - Copyright.
  116.  
  117.              (Dir) c/
  118.                       MuchMore
  119.  
  120.              (Dir)(info) AmigaLib/
  121.                       AmigaLib.LL       - Link List of Kick 2.04 FD files used
  122.                                           by Hce to make Kick2.04 Amiga.lib
  123.                       Readme.doc (info) - Explanation on how to make the
  124.                                           Amiga library.
  125.                       (Dir) AMIGA_LIB/
  126.                                       Amiga_Kick1.3.dir
  127.                                       Amiga_Kick1.3.lib
  128.                                       Amiga_Kick2.04.lib
  129.                       (Dir) extras/
  130.                                (Dir) Source/
  131.                                   Extra source code files required by
  132.                                   the amiga lib.(PDC)(updated).
  133.                                   Extra.CL - Compile List.
  134.                       (Dir) FD2STUBS/
  135.                                   FD2Stubs + doc
  136.                       (Dir) LIBR/
  137.                                   Libr
  138.                       (Dir) SCRIPTS/
  139.                                   Script files to help make Amiga.lib.
  140.                       (Dir) STUBS/
  141.                                   Stubs produced from FD1.3 files.
  142.  
  143.              (Dir)(info)(ZC) clib/
  144.                       Readme.doc (info) - Explanation on how to make the
  145.                                           libraries listed below.
  146.                       (Dir) crt/
  147.                                 begin.a  - Program startup code.
  148.                                 begin.o
  149.                                 begin.CL
  150.                       (Dir) math/
  151.                                 Maths library source.
  152.                                 Math.LL - Link list.
  153.                       (Dir) misc/
  154.                                 Misc library source.
  155.                                 Misc.LL
  156.                       (Dir) stdio/
  157.                                 Stdio libarary source.
  158.                                 Stdio.LL
  159.                       (Dir) string/
  160.                                 String library source.
  161.                                 String.LL
  162. (Disk) D&E:
  163.              HceSource.LZH - Source code to Hce/Top in compressed form.
  164.  
  165.          (Dir)(info) Docs/
  166.              HCE.doc           (info)(ME)    - How to use Hce.
  167.              LIB.doc           (info)(ME/ZC) - How to use the C libraries.
  168.              A68K.doc          (info)(HCC)   - How to use the Assembler.
  169.              Blink.doc         (info)(HCC)   - How to use the Linker.
  170.              CompilerBugs.doc  (info)(HCC)   - Known compiler bugs.
  171.              Bug_Report.doc    (info)(ME)    - How to report bugs.
  172.              Top.doc           (info)(HCC)   - How to use the optimizer.
  173.  
  174.          (Dir)(info) Examples/
  175.              Readme.doc (info) - Explanation on how to make examples.
  176.  
  177.              (Dir)(info) AMIGA/
  178.                          (Dir)(info)  BALLS/    moving spheres demo
  179.                          (Dir)(info)  DARKDEMO/ copper demo
  180.                          (Dir)(info)  POOLS/    simple pools predictor
  181.  
  182.              (Dir)(info) CLIB/
  183.                          (Dir)(info)  CCheck/ tests C source for errors
  184.                          (Dir)(info)  Cflow/  tests C src function flow
  185.                          (Dir)(info)  Tests/  tests for HCC compiler
  186.  
  187. ************************************************************************
  188. *                          INSTALLATION                                *
  189. ************************************************************************
  190.  
  191. There are three Icons on the 'HCE:' disk to help you Install HCE,
  192. these are as follows:
  193.                      Drives_1
  194.                      Drives_2
  195.                      HD0
  196. Drives_1:
  197. ---------
  198. Install HCE to a single drive Amiga. (Requires 1 spare floppy)
  199. This script will copy your Workbench disk, strip the copy down, 
  200. Install HCE, and then rename the copy, HCE.
  201.  
  202. Drives_2:
  203. ---------
  204. Install HCE to a 2 drive Amiga. (Requires 2 spare floppies)
  205. This script will copy your Workbench disk, strip the copy down, Install 
  206. part of HCE, and then rename the copy, HCE.
  207. Then formats a disk called 'HceTools' and Installs the rest of HCE.
  208.  
  209. HD0:
  210. ----
  211. Install HCE to a Hard Drive. (Requires that you boot from Workbench, 
  212. and that Workbench is installed to your Hard Drive)
  213. This script will Install HCE to the Workbench disk on your hard drive and
  214. takes up around 550K of drive space.
  215. note: this script has not been tested and could fail!.
  216.  
  217. Make your own WorkDisk(s)
  218. -------------------------
  219. If you decide not to use the Install routines provided then you
  220. should put the following or similar in your Startup-Sequence:
  221. (note: 'SYS' is an example)
  222.  
  223. ; Common place for program files.(HCE,TOP,BLINK,A68K etc)
  224.         Assign >NIL: BIN: SYS:bin
  225.  
  226. ; Tell Linker were the Libraries are, and the Compiler where the Includes are
  227.         Assign >NIL: LIB: SYS:lib
  228.         SetEnv INCLUDE "SYS:include"
  229. ; Alternative to SetEnv.
  230.         Assign >NIL: INCLUDE: SYS:include
  231.  
  232. ; HCE cannot find the Optimizer,Assembler and Linker without the following:
  233.         Path SYS:bin Add
  234.  
  235. ; Stack should be at least:
  236.         Stack 10000
  237.  
  238. ************************************************************************
  239. *                         GETTING STARTED                              *
  240. ************************************************************************
  241.  
  242. After Installing HCE you should test to see if the Installation worked
  243. correctly and also familiarize yourself with HCE.
  244.  
  245. note: If you have not used a Text Editor or Word Processor before then I
  246.       suggest you read the notes on TEXT HANDLING before you begin.
  247.  
  248. Type the following (exactly as shown) into the Editor Window:
  249.  
  250. #include <stdio.h>
  251.  
  252. void main();
  253.  
  254. void main()
  255. {
  256.  short i;
  257.  
  258.  for(i=1;i <= 10; i++) {
  259.      printf("Hello World!\n");
  260.      }
  261. }
  262.  
  263. Now click on the 'Compile+O+A+Link' Gadget below the Editor Window.
  264. After a short while the Message 'No-Errors' should appear in the Message
  265. Box. If it did not then either you have made a spelling mistake or a file
  266. or files could not be found. A message should appear indicating which.
  267. If there were no spelling mistakes and the error messsage given indicates
  268. that a file was not found, then faulty Installation could be the problem.
  269. Go through the Installation procedure again and also read the INSTALLATION
  270. text. If you still have problems, then write to me explaining what they 
  271. are and I will try and fix them ready for the next release of HCE.
  272.  
  273. If no errors occured then click on the 'Run' Gadget. The message 
  274. 'Hello World!' without the quotes should appear Ten times in the 
  275. CLI Window. If this is the case then Installation is correct.
  276.  
  277. You should now atleast read the following texts to get the best from HCE.
  278. If you own a printer then I strongly recomend that you print this Entire
  279. Document.
  280.  
  281.                       Text Handling
  282.                       Menus
  283.                       Gadget Bar
  284.                       Compiler Options
  285.                       Optimizer Options
  286.                       Assembler Options
  287.                       Linker Options
  288.                       Preferences
  289.                       Key Short Cuts
  290.  
  291. ************************************************************************
  292. *                          TEXT HANDLING                               *
  293. ************************************************************************
  294.  
  295.   Cursor Movement
  296.   ===============
  297.  
  298.   The cursor is positioned anywhere in text by first moving the mouse
  299.   pointer to the desired location and then clicking on the Left Mouse
  300.   Button. You can also move the cursor in any direction by using the
  301.   Arrow keys.
  302.  
  303.   Arrow key combinations:
  304.  
  305.             Shift+Up arrow    -  Move up 10 lines at a time.
  306.             Shift+Down arrow  -  Move down 10 lines at a time.
  307.             Shift+Left arrow  -  Place cursor at beginning of line.
  308.             Shift+Right arrow -  Place cursor at end of line.
  309.             Right-Amiga + T   -  Place cursor at top of file. If already
  310.                                  at top then place cursor at the bottom.
  311.             Right-Amiga + B   -  Place cursor to beginning of line. If
  312.                                  already at beginning then place to end.
  313.  
  314.    Inserting Text
  315.    ==============
  316.  
  317.    When you type a character it is inserted at the current cursor location 
  318.    and the cursor is moved one place to the right. If the line is full the 
  319.    last character on the current line is moved to the beginning of the next
  320.    line to create a space. If however the next line is also full then nothing
  321.    will be inserted.
  322.  
  323.  
  324.    Deleting Text
  325.    =============
  326.  
  327.    Backspace Key:  Delete the character to the left of the cursor. If the
  328.                    cursor is at the beginning of the line it is moved to
  329.                    the end of the previous line. If there was any trailing
  330.                    characters behind the cursor they are joined to the
  331.                    end of the previous line.
  332.    Delete Key:     Delete the character at the current cursor location
  333.                    moving all characters from the right to the left one
  334.                    place. If the cursor is at the end of the line, as much 
  335.                    of the next line as will fit is added to the current 
  336.                    line.
  337.    
  338.    Other
  339.    ======
  340.  
  341.       Control Key Combinations:
  342.  
  343.                    Ctrl+D  -  Delete entire line cursor is on.
  344.                    Ctrl+E  -  Delete line cursor is on from cursor 
  345.                               x position.
  346.                    Ctrl+S  -  Delete all spaces between words if cursor
  347.                               is on a space.
  348.                    Ctrl+W  -  Delete all characters until space if cursor
  349.                               is not on a space.
  350.                    Ctrl+V  -  Restore entire line after one of the above.
  351.                    Ctrl+U  -  Change character to opposite case and move
  352.                               the cursor one place to the right. 
  353.                               To change hole or parts of lines to upper or
  354.                               lower case, first mark them out(See BLOCK-MENU)
  355.                               and then press either the L or U key.
  356.       Escape Key:
  357.                    This toggles the Editor Window between full and
  358.                    standard size. If toggled to full size, the Message Box 
  359.                    is lost and the Editor Messages can no longer be seen.
  360.       Tab Key:
  361.                    By pressing the Tab Key the cursor is moved (if possible)
  362.                    to the next Tab Stop. By pressing Shift+Tab the cursor
  363.                    is moved backwords to the previous Tab Stop or to the
  364.                    beginning of line.
  365.                    The number of character positions to the next Tab Stop can
  366.                    be changed in the Preferences Window. Default is 8.
  367.  
  368.  
  369.    The editor has a few restrictions these are as follows:
  370.  
  371.         1) The text window sizes are fixed and unchangeble.
  372.         2) You can only open and work with one file at a time.
  373.         3) You cannot edit beyond the end of the visible windows width.
  374.            This is deliberate, I decided that code is more readable if
  375.            each line is always entirely visible.
  376.         4) The maximum size that a file can be is 155844 Bytes(152K) or
  377.            1998 lines. This should not cause any problems, not many
  378.            source files are this big, if they are they should be broken
  379.            down into smaller more readable sections anyway.
  380.         5) There are no Typeover modes.
  381.  
  382.     See also 'Search/Cursor' Menu.
  383.  
  384. ************************************************************************
  385. *                           FILE REQUESTER                             *
  386. ************************************************************************
  387.  
  388. HCE uses the ASL library V36(or higher) file requester.
  389. On an A1200 the library is located in the libs directory of the
  390. Workbench disk. On other Amigas it may be an internal library.
  391. If it exists on your Workbench disk then you must place it in the 'libs/'
  392. directory of your boot disk. (If you used one of the install Icons I provided
  393. to install HCE then the library will already be on your boot disk).
  394.  
  395. You can find a more detailed explanation of the file requester in your 
  396. Workbench manual, but here's a run down of the most important things anyway:
  397.  
  398. File selection:
  399.               with mouse:                         
  400.                          Point to the desired file and double click the left
  401.                          mouse button to select it, or click on the file
  402.                          once and then click on the OK gadget. Note the OK 
  403.                          gadget may have a different name depending on what 
  404.                          purpose the file requester was called for.(eg: Load,
  405.                          Save,Lock).
  406.               with keys:
  407.                          Use the Up and Down arrow keys to scroll through
  408.                          the files listed and then press the return key to
  409.                          select the desired file.
  410. Multiple file selection:
  411.        This only applies to some file operations such as delete or copy.
  412.  
  413.              with mouse:
  414.                          Hold down one of the shift keys then click each
  415.                          file you want selected with the mouse.
  416.              with keys:
  417.                          No Idea!
  418. Directories:
  419.              with mouse:
  420.                          To enter a new directory with the mouse click
  421.                          on the directory once. To get back to the previous
  422.                          directory click on the Parent gadget.
  423.              with keys:
  424.                          Scroll through the directories with the up and down
  425.                          arrow keys then press return to enter the directory.
  426.                          To get back to the previous directory press
  427.                          Right-Amiga + P.
  428. Volumes:
  429.              with mouse:
  430.                          To list the volumes available with the mouse click
  431.                          the Volumes gadget.
  432.              with keys:
  433.                          Right Amiga + V.
  434. Cancel:
  435.              with mouse:
  436.                          To exit without selecting a file click on the
  437.                          Cancel gadget.
  438.              with keys:
  439.                          Right Amiga + C.
  440.  
  441. ************************************************************************
  442. *                               MENUS                                  *
  443. ************************************************************************
  444.  
  445.  
  446. HCE-MENU:
  447. ==========
  448.  
  449. About Hce:
  450.            Copyright,Author for HCE.
  451. About Hcc:
  452.            Copyright,Authors for HCC and TOP.
  453. Clear text buf:
  454.            Clears the editor text buffer ready for a new file.
  455.            If you have made changes to the current file then a confirmation
  456.            requester will appear before proceeding.
  457. First error:
  458.            If any error messages were shown and then overwritten during
  459.            compile, then this will reshow the first error.
  460. First warning:
  461.            If any warning messages were shown and then overwritten during
  462.            compile, then this will reshow the first warning.
  463. Print:
  464.            Opens an intuition window with the following gadgets:
  465.  
  466.            From Line:   Set the line number to print from.
  467.            To Line:     Set the line number to print to.
  468.            Print:       Print using From Line/To Line.
  469.            Print All:   Print entire source.
  470.  
  471.            For printing to work correctly, you should install the correct 
  472.            printer driver to the Devs/Printers directory on your boot disk.
  473.  
  474. Prefs/Config:
  475.            See 'PREFERENCES'.
  476. CLI:
  477.            Opens a new CLI window and places HCE behind the Workbench Screen.
  478.            Requires for the 'CLI' file to be in the System directory of your
  479.            boot disk and also for the 'Shell-Startup' file to be in the S 
  480.            directory of your boot disk (If not present,copy from WB disk).
  481.            To get HCE back from behind the Workbench screen press the depth
  482.            gadget (Top Right of screen) or press Left-Amiga + M.
  483. Program size:
  484.            After creating an executable file this will show it's name and 
  485.            size in the message box.
  486. Quit:
  487.            Exit from HCE and return to the CLI.
  488.  
  489. DISK-MENU:
  490. ===========
  491.  
  492. Load. (c/a-source):
  493.            Load a C or Assembler source code file.
  494.            An ASL filerequester will pop up (see FILE REQUESTER notes), 
  495.            just double click on the file you want to load.
  496.            Maximum file size is 1998 lines.
  497.            HCE can also be used as a normal ASCII editor so you are
  498.            not restricted to just loading and saving source code files.
  499.            This document was written with HCE.
  500. Load. (append....):
  501.            Same as above except the new file is appended to the current file.
  502. Load. (lock......):
  503.            Same as, 'Load (c/a-source)' except that the directory the file
  504.            was selected from becomes the current directory.
  505. Save. (c/a-source):
  506.            Save C or Assembler source code file.
  507.            If you have not given your file a name then the save as requester
  508.            will appear, enter the new file name in the 'File' draw, and
  509.            select Save. You must add the appropriate '.c' or '.a'
  510.            suffix yourself.
  511. Save. (as........):
  512.            Save under a new name (see above save).
  513.  
  514. COMPILE-MENU:
  515. =============
  516.  
  517. Compile only (test):
  518.             Invoke the internal compiler HCC and test either the file
  519.             present in the editor buffer or test all source code files 
  520.             listed in the 'Compile List' buffer (C or Assem files, if list)
  521.             or do both at the same time. Which depends on the compilers
  522.             'Compile' option.(See, COMILER-OPTIONS)
  523.             If any errors are encounted the first five are listed in the
  524.             message box and compilation is stopped. The editor will 
  525.             automatically scroll to or near the first offending line.
  526.             You can go to or near any of the lines which caused an error
  527.             by holding down one of the Shift keys and pressing 'F1' through
  528.             to 'F5'. To recall the first error message press Right Amiga+E.
  529.             To recall the first warning message press Right Amiga+W.
  530.             To stop compilation, press the 'Esc' gadget and wait, it
  531.             may take a short while before stopping, deppending on what 
  532.             part of the compilation was taking place at the time.
  533.             You can also test sections of code by first marking them out 
  534.             with the mouse or keys. (See MENUS, 'BLOCK-MENU')
  535.             Always make the directory containing the C or Assembler source
  536.             code files the current directory.(See MENUS, 'Other' and MENUS
  537.             'Disk').
  538.             No output files are left after a test.
  539. Compile + Optimize:
  540.             Does the same things as 'test' above but also optimizes each
  541.             file. The output files are placed in the 'Quadfile Device' which
  542.             is set in the Compiler Options window. Default is the Ram Disk.
  543.             This option is mainly for people who want to improve the
  544.             optimizer (TOP) and need to inspect its output.
  545.             You can delete all output files that the optimizer produces by
  546.             pressing the 'Cleanup' gadget under the editor window.
  547. Compile + Opt + Assemble:
  548.             Does the same things as above but also Assembles.
  549.             The output path for each file assembled is determined by
  550.             'Outpath',(See ASSEMBLER OPTIONS). Default is the Ram Disk.
  551.             The Compiler and Optimizer output files are cleaned up for you.
  552.             You can delete the assemblers output files (if not wanted) by
  553.             pressing the 'Cleanup' gadget.
  554. Compile + Opt + Assem + Link:
  555.             Does the same things as above but also Links all object files
  556.             into an executable. The executables name and path can be set in 
  557.             the Linker options window. If you do not choose a name then the
  558.             default name is taken from the first file compiled and the 
  559.             destination is taken from the assemblers 'Outpath'. So if the
  560.             file was called 'open.c' and the 'Outpath' was 'RAM:' then the
  561.             executables name would be 'RAM:open'.
  562.             All cleaning up is done for you. If you want to delete the
  563.             executable press Right Amiga + D.
  564. Optimizer-Options:
  565.             See OPTIMIZER OPTIONS.
  566. Compiler-Options:
  567.             See COMPILER OPTIONS.
  568.  
  569. ASSEMBLE-MENU:
  570. ==============
  571.  
  572. Assemble this file:
  573.             Call the external assembler A68K and assemble the current editor
  574.             file. If the message 'Assembler file error!' appears in the
  575.             message box, either A68K could not open the file for input or
  576.             the file contains errors. Pressing Left-Amiga + M toggles HCE
  577.             behind or infront of the workbench screen (same as depth gadget).
  578.             You will need to do this to see the assembler error messages in
  579.             the CLI (alternatively you could set the verbose flag, See
  580.             ASSEMBLER OPTIONS).
  581.             After making changes, you must resave the source file before
  582.             assembling.If you do'nt the changes will go unoticed.
  583.             The default place to assemble a file is the Ram Disk, this can
  584.             be changed, See ASSEMBLER OPTIONS 'Outpath'.
  585. Assemble compiled:
  586.             If you have Compiled + Optimized one or more files, this will
  587.             do the next stage and Assemble them. All Compiled+Optimized
  588.             files are cleaned up for you. You can delete the Assembled
  589.             files (if not wanted) with the 'Cleanup' gadget.
  590. Assemble selected:
  591.             Assemble a file selected with the ASL filerequester.
  592. Assemble + Link:
  593.             Same as 'Assemble compiled' but also Links the object files into
  594.             an executable. All cleaning up is done for you.
  595.             For more info on linking, See LINK-MENU, 'Link (a/l/b)'.
  596. Assembler-options:
  597.             See ASSEMBLER OPTIONS.     
  598.  
  599. LINK-MENU:
  600. ==========
  601.  
  602. Link  (a/l/b):
  603.             Link object files into an executable.
  604.             Either link all files last assembled, all files entered into
  605.             the linkers Link List gadget or both. Which depends on the 
  606.             linkers 'Link' cycle gadget (See LINKER OPTIONS).
  607.             The executables name and path can be set in the Linker options
  608.             window. If you do not choose a name then the default name is
  609.             derived either from the first file in the last assembled list
  610.             or from the first file in the Link List. If you select the
  611.             link both option from the linker options window then the first
  612.             name in the last assembled list is used. The default destination
  613.             path is taken from the assemblers 'Outpath' gadget.
  614.             If you want to delete the executable press Right Amiga + D.
  615. Link selected:
  616.             Link a single object file selected with the ASL file requester
  617.             into an executable.
  618. Link list:
  619.             Link all files listed in the Linkers Linklist gadget to an
  620.             executable.(this overides the 'Link' linker gadget).
  621. Linker-options:
  622.             See LINKER OPTIONS.
  623.  
  624. OTHER-MENU:
  625. ===========
  626.  
  627. Run Linked:
  628.             After linking a file you can test it by selecting this.
  629.             HCE is placed behind the workbench screen, the program is run,
  630.             and either a pause will occur or you will have to press a key
  631.             (any key) or mouse button to return to the editor again.
  632.             The preferences 'Run' cycle gadget decides which.(so see prefs).
  633.             If an error occured during the test then a message will appear
  634.             in the message box. (Run, key short cut: Right-Amiga + K).
  635. Run?:
  636.             Run an executable selected with the file requester.(see above)
  637. Lock this path:
  638.             If you load a source code file into the editor this makes
  639.             the directory or device it was loaded from the current directory.
  640. Lock df0:
  641.             Make the Root directory of a disk in the internal drive the
  642.             current directory.
  643. Lock?:
  644.             Make a device or directory selected with the file requester the
  645.             current directory.
  646. Copy file(s):
  647.             The file requester will pop up, select the destination device or
  648.             directory first, then select the file or files to be copied to
  649.             the destination.(For multiple selection, See FILE REQUESTER)
  650. Delete Linked:
  651.             After linking and testing an executable file, you can
  652.             remove it with this. (Key short cut: Right-Amiga + D).
  653. Delete?:
  654.             Delete directory or file(s) with the file requester.
  655.             Select desired file(s) with mouse or keys and click the
  656.             'Delete' gadget. If deleting a directory, type its name into the 
  657.             'File' draw (important!) and press the return key (don't add '/').
  658.             (For multiple file selection, See FILE REQUESTER)
  659. Make directory:
  660.             Make a directory with the file requester.
  661.             Click into the 'File' draw, type the new directory name,
  662.             press the return key or select the OK gadget.
  663. Assign device:
  664.             Does the same job as the 'Assign' cli command.
  665.             First enter the name of the device(with or without ':') to be
  666.             assigned and press the return key, then enter the path (with or
  667.             without '/') the device is to be assigned to and press the
  668.             return key.
  669.             This version of assign does not require for the device to be
  670.             assigned to be present for the assign to be successful.
  671. Rename (v/d/f):
  672.             Rename a Volume, Directory or File.
  673.                 Volume:
  674.                            1) After the file requester appears click on the
  675.                               volume gadget and select a volume name with
  676.                               the mouse or arrow keys. Then click on the
  677.                               OK gadget or press the return key.
  678.                            2) Type the new volume name in the small requester
  679.                               which appears in the middle area of the editor
  680.                               window, and press the return key.
  681.                 Directory:
  682.                            1) After the file requester appears select the
  683.                               directory to be renamed with the mouse or 
  684.                               arrow keys.  Then click on the OK gadget or
  685.                               press the return key.
  686.                            2) Type the new directory name in the small 
  687.                               requester which appears in the middle area 
  688.                               of the editor window, and press the return key.
  689.                 File:
  690.                            1) After the file requester appears select
  691.                               the file to be renamed with the 
  692.                               mouse or arrow keys. Then click on the 
  693.                               OK gadget or press the return key.
  694.                            2) Type the new file name into the 'File' draw
  695.                               when the file requester reappears. Then either
  696.                               click on the OK gadget or press the return key.
  697.  
  698. BLOCK-MENU:
  699. ===========
  700.  
  701. Mark:
  702.             Switch to marking out mode.(Key short cut: Right-Amiga + M).
  703.             Use the arrow keys to mark out the text to be Cut or Copied.
  704.             You can also mark out text with the mouse. Point the mouse
  705.             pointer to the place where you wish to start marking, hold down
  706.             the left mouse button and move in the direction to be marked.  
  707.             Releasing the left mouse button signifies end of block.
  708.             The limit for a block is 198 lines.
  709. Hide:
  710.             Cancel marking, and restore highlighted text.
  711.             (Key short cuts: Right-Amiga + H, or just the H key on its own).
  712. Cut:
  713.             After marking out a block this will cut it to the internal
  714.             buffer. See 'Mark'.
  715.             (Key short cut: Right-Amiga + X)
  716. Copy:
  717.             After marking out a block this will copy it to the internal 
  718.             buffer. See 'Mark'.
  719.             (Key short cut: Right-Amiga + C)
  720. Insert:
  721.             This will insert from the current cursor location what was
  722.             previously cut or copied.
  723.             (Key short cut: Right-Amiga + I)
  724. Print:
  725.             Send contents of the block buffer to the Printer. 
  726.             Must have previously Cut/Copied.
  727.             (Key short cut: Right-Amiga + P)
  728.  
  729. SEARCH/CURSOR-MENU:
  730. ===================
  731.  
  732. Find?:
  733.             Search towards the end of file, starting one character beyond the
  734.             current cursor location for the next occurance of the specified 
  735.             string. When the string is found it is highlighted and the
  736.             cursor is placed onto the first character of the string.
  737.             To set case sensitivity see 'Find/Replace' below.
  738.             (Key short cut: Right-Amiga + F)
  739. Find next:
  740.             Find the next occurance of a string specified by 'Find?', or by
  741.             'Find/Replace'.(Key short cut: Right-Amiga + N).
  742. Find/Replace:
  743.             Search towards the end of file, starting one character beyond the
  744.             current cursor location for the next occurance of the specified 
  745.             string. If the string is found you can press one of the following
  746.             keys which will be listed in the message box:
  747.  
  748.                    G  - Replace all occurances of the search string with the
  749.                         replacement string.(Global)
  750.                    R  - Replace this occurance and go to the next.
  751.                    N  - Skip this occurance and go to the next.
  752.                    Q  - Quit.
  753.  
  754.             When searching for a string the default is to make no distinctions
  755.             between upper or lower case. To change this, set the case
  756.             sensitive gadget to 'YES'.
  757.             (Key short cut: Right-Amiga + R)
  758. B/End of line:
  759.             Place cursor to the beginning of line,if already there then place
  760.             to the end.
  761.             (Key short cut: Right-Amiga + B)
  762. B/End of file:
  763.             Place cursor to the beginning of file,if already there then place
  764.             to the end.
  765.             (Key short cut: Right-Amiga + T)
  766. Jump to line:
  767.             Place cursor to the specified line number.
  768.             Just enter the line number and press return.
  769.  
  770. ************************************************************************
  771. *                             GADGET BAR                               *
  772. ************************************************************************
  773.  
  774. The gadget bar is a thin strip of gadgets under the editor window and is
  775. provided mainly as a short cut to some of the most important menus.
  776.  
  777. Test:
  778.       Test one or more C/Asm source files for errors.
  779.       This is the same as the 'Compile only(test)' menu item, so see this
  780.       for details. (Key short cut: 'F1')
  781. Compile+Optimize+Assemble:
  782.       Compile, Optimize and Assemble one or more C/Asm source files.
  783.       Same as the 'Compile + Opt + Assemble' menu item.
  784.       (Key short cut: 'F3')
  785. Compile+O+A+Link:
  786.       Compile, Optimize, Assemble and Link one or more C/Asm source files.
  787.       Same as the 'Compile + Opt + Assem + Link' menu item.
  788.       (Key short cut: 'F5')
  789. Link:
  790.       Link one or more object files into an executable. (Key short cut: 'F1')
  791.       (See LINK menu, 'Link (a/l/b)')
  792. Run:
  793.       Run a previously linked executable file.
  794.       Same as the 'Run Linked' menu item.
  795.       (Key short cut: Right-Amiga + K)
  796. Esc:
  797.       This will attempt to stop the compiling process or what ever process
  798.       is taking place at the time.
  799.  
  800.          If Compiling:
  801.                        Compilation will be stopped as soon as it is safe
  802.                        enough to do so. If the compiler for example is
  803.                        reading many nested include files, it is not always
  804.                        possible to stop without closing these files and
  805.                        returning from the nest.
  806.          If Optimizing, Assembling or Linking:
  807.                        You can not stop the Optimizer, Assembler or Linker 
  808.                        once they have been called, so pressing the Escape
  809.                        gadget during one of these will only stop the next
  810.                        program from being called.
  811. Cleanup:
  812.         This is used in conjunction with the Compile, Assemble and Link Menus
  813.         (so see these) and is used to delete unwanted output files.
  814.  
  815. ************************************************************************
  816. *                            COMPILER                                  *
  817. ************************************************************************
  818.  
  819. The Sozobon-C compiler is a complete implementation of the C language as
  820. defined by Kernighan & Ritchie and prevailing practice.
  821. It was originally ported from the ATARI ST by Sozobon Limited to
  822. Fish disk 171. Since then various versions have appeared in the public 
  823. domain under different names, such as ZC and NorthC. The version which is  
  824. built into 'HCE' is the 'HCC-V2.0, Amiga-V1.1' version by Detlef Wurkner' 
  825. (Fish disk: 508) which has many advantages over previous versions.
  826. (can recompile itself, registerize variables, switch between 16 and 32 bit
  827.  for 'int' and 'unsigned', and more).
  828.  
  829. KEYWORDS:
  830. =========
  831.  
  832. The compiler understands the following key words:
  833.  
  834.          DATA TYPES       BYTE SIZE      BIT SIZE
  835.          ----------------------------------------
  836.          char             1              8
  837.          short            2              16
  838.          int              4/2            32/16
  839.          unsigned         4/2            32/16
  840.          long             4              32
  841.          double           4              32
  842.          float            4              32
  843.          void             0              0
  844.          -----------------------------------------
  845.          note: 'int' and 'unsigned' sizes depend on the 
  846.                compiler flag 'Int & Unsigned'.
  847.                 
  848.  
  849.          STORAGE CLASSES
  850.          ---------------
  851.          auto
  852.          static
  853.          extern
  854.          register
  855.        
  856.          OTHERS
  857.          ------
  858.          enum     union       struct     switch
  859.          do       while       for        goto
  860.          break    continue    case       default
  861.          if       else        extern     return
  862.          sizeof   asm         chip       far
  863.          __chip   __far     __LINE__   __FILE__
  864.  
  865.          note: '__chip' acts the same as 'chip' and '__far' as 'far'. 
  866.  
  867. NOTE ABOUT 'far'
  868. ================
  869. Currently the 'far' keyword does nothing but is implemented to save you from
  870. having to make changes to files before they can be compiled. Files I have
  871. tried which require this key word have worked fine without it anyway.
  872.  
  873. NOTE ABOUT 'chip'
  874. =================
  875. The chip keyword will force Data and Bss hunks to chip memory for the
  876. file it is defined in, and should only be defined once.
  877. (See OPTIMIZER OPTIONS for where to use)
  878.  
  879. PREPROCESSOR KEYWORDS:
  880. =======================
  881.  
  882. #define, #undef, #include, #if, #ifdef, #ifndef, #else, #endif
  883.  
  884. ANSI COMPATABILITY:
  885. ====================
  886. The HCC compiler does not conform to the ANSI standard but does have some
  887. ANSI support (Libraries, header files etc).
  888. I plan to for the next release of HCE to implement the most important
  889. things such as function prototyping and missing keywords.(don't get your
  890. hopes up though, this is no small task!).
  891.  
  892. ************************************************************************
  893. *                          COMPILER OPTIONS                            *
  894. ************************************************************************
  895.  
  896. [c] below = Cycle gadget.
  897. [s] ..... = String gadget.
  898. [b] ..... = Button gadget.
  899.  
  900.  
  901. Compile,[c]:
  902.                FROM-EDITOR:
  903.                      When this flag is set all the menus or gadgets related
  904.                      to compiling will only compile the file present in the
  905.                      Editor (eg: 'Compile only', 'Compile + Optimize' etc).
  906.                      The file in the Editor must be a C source code file.
  907.                      This flag is the default.
  908.                FROM-LIST:
  909.                      When this flag is set all the menus or gadgets related
  910.                      to compiling will only compile the files present in
  911.                      the 'Compile List' string gadget.
  912.                      (see 'Compile List' notes below)
  913.                FROM-BOTH:
  914.                      When this flag is set all the menus or gadgets related
  915.                      to compiling will do both 'FROM-EDITOR' and 'FROM-LIST'.
  916. Debug(a-z),[s]:
  917.                      Print out various debug information to the CLI.
  918.                      This is only for people who want to improve the
  919.                      compiler. You will have to recompile all the compiler
  920.                      source code files with the DEBUG flag set to get this
  921.                      to work. Entering a letter from 'a' to 'z' determines
  922.                      what type of information will be shown.
  923. Define Symbol,[s]:
  924.                      Define a symbol as if it were in a C source code
  925.                      file (eg: #define DEBUG 1). The '#define' keyword is not
  926.                      required, so to define the Symbol 'DEBUG' for example
  927.                      just type 'DEBUG' without the quotes.
  928.                      The symbol will stay defined until deleted from the
  929.                      gadget.
  930. Undefine Symbol,[s]:
  931.                      Undefine a symbol in a C source code file,
  932.                      (eg: #undef DEBUG). The '#undef' keyword is not
  933.                      required, so to undefine the Symbol 'DEBUG', just type
  934.                      'DEBUG' without the quotes.
  935.                      The symbol will stay undefined until deleted from gadget.
  936.                      If the symbol was a built in symbol such as AMIGA or
  937.                      AMIGADOS then the symbol will stay permanently undefined.
  938. Include Dir List,[s]:
  939.                      Give the compiler a list of extra devices or directories
  940.                      to search for include files. Currently you can only
  941.                      enter one directory between compilations which is then
  942.                      added to the compilers internal directory/device list.
  943.                      If you want to save a device or directory path to HCE's
  944.                      configuration file then you must save it as soon as it
  945.                      is entered or before you compile.(see PREFERENCES)
  946. Quadfile Device,[s]:
  947.                      Set the place where the temporary (quad) files go, such 
  948.                      as the compiler and optimizer output files. It also
  949.                      determines such things as where libraries are created.
  950.                      The default device is the 'Ram Disk:'.
  951.                      If you do not have much memory (eg: 1MB) then you should
  952.                      use a disk drive or a hard drive as the quad file device.
  953. Keep Quad,[c]:
  954.                      YES:
  955.                           keep the temporary (quad) files. This option is
  956.                           mainly for people who want to inspect the
  957.                           output files of the compiler and optimizer.
  958.                      NO:
  959.                           Delete temporary files.
  960. Int & Unsigned,[c]:
  961.                      32 BIT:
  962.                              Make 'int' and 'unsigned' 32 BIT.(default)
  963.                      16 BIT:
  964.                              Make 'int' and 'unsigned' 16 BIT.
  965. Free-Up,[c]:
  966.                      YES:
  967.                           Always free memory after compiling.(Default)
  968.                      NO:
  969.                           Keep memory and use on next compile.
  970.                           This can greatly enhance compilation speed and is
  971.                           best used if compiling more than one file.
  972. Compile List,[s]:
  973.                      This holds a list of upto 55 file names (depending on
  974.                      length) which are to be either compiled or assembled.
  975.                      Assembler files are recognised by either a '.a' or
  976.                      '.asm' suffix. C files can be any name which doesn't 
  977.                      end with an Assembler suffix.
  978.                      To use the list see 'Compile' notes above.
  979. Dupe List,[b]:
  980.                      This copies a list of files (if exist) from the
  981.                      'Link List' string gadget (See 'Linker Options') to
  982.                      the 'Compile List' gadget. The suffix for each file name
  983.                      is changed to a '.c' suffix.
  984. Check List,[b]:
  985.                      Check if all files in the 'Compile List' exist either in
  986.                      the current directory or at the assemblers 'OutPath'.
  987.                      (See 'Assembler Options').
  988. Clear List,[b]:
  989.                      Clear the 'Compile List'. If the list wasn't empty then
  990.                      a conformation requester will apear.
  991. Disk To List,[b]:
  992.                      Get all files ending with a certain pattern and place
  993.                      them into the 'Compile List' string gadget. If the
  994.                      'Compile List' string gadget wasn't empty then the new
  995.                      names are appended to the already existing ones.
  996.                      Simply enter the path of the files into the file
  997.                      requester drawer and then click on the OK gadget.
  998.                      (also see 'Pattern' below)
  999. Pattern,[s]:
  1000.                      Enter a pattern or patterns for 'Disk To List'.
  1001.                      Each pattern is separated either by  '+' or ' '.
  1002.                      (eg: .c+.a+.asm  or  .c .a .asm)
  1003. Load Compile List,[b]:
  1004.                      Load a previously saved 'Compile List' file.
  1005.                      (Compile list files have a '.CL' suffix).
  1006.                      When loading a compile list file the following
  1007.                      are changed:
  1008.  
  1009.                        1) 'Compile List' gadget.
  1010.                        2) 'Define Symbol' gadget.
  1011.                        3) The assemblers 'OutPath' gadget.
  1012. Save Compile List,[b]:
  1013.                      Save a 'Compile List' file.
  1014.                      If you do not add a '.CL' suffix then one is added
  1015.                      for you.
  1016.  
  1017.                      The following are saved to a compile list file:
  1018.  
  1019.                        1) 'Compile List'
  1020.                        2) 'Define Symbol'
  1021.                        3) The assemblers 'OutPath'.
  1022. Exit,[b]:
  1023.                      Leave compiler options and return to the editor.
  1024.  
  1025. ************************************************************************
  1026. *                          OPTIMIZER OPTIONS                           *
  1027. ************************************************************************
  1028.  
  1029. [c] below = Cycle gadget.
  1030. [b] ..... = Button gadget.
  1031.  
  1032. Debug,[c]:
  1033.             ON:
  1034.                Print detailed debugging information to the CLI.
  1035.                This is only for people who want to improve the optimizer.
  1036.             OFF:
  1037.                Do nothing.
  1038. Verbose,[c]:
  1039.             ON:
  1040.                Show changes made from optimizing.
  1041.                Also show authors names and copyright.
  1042.             OFF:
  1043.                Do nothing.
  1044. Branch Reversal,[c]:
  1045.             ON:
  1046.                Do branch reversals.
  1047.             OFF:
  1048.                Turn branch reversals off.
  1049. Loop Rotation,[c]:
  1050.             ON:
  1051.                Do loop rotations.
  1052.             OFF:
  1053.                Turn loop rotations off.
  1054. Peephole Optimization,[c]:
  1055.             ON:
  1056.                Do peephole optimization.
  1057.                This slows the optimizer down considerably when working on
  1058.                large functions. You can either break the functions down into
  1059.                smaller sections,be patient,or turn peephole optimization off.
  1060.             OFF:
  1061.                Turn peephole optimization off.
  1062. Variable Registerizing,[c]:
  1063.             ON:
  1064.                Do variable registerizing.
  1065.                If possible, make an auto variable use one of the amigas 
  1066.                registers.
  1067.             OFF:
  1068.                Turn variable registerizing off.
  1069. No change of Stack-Fixups,[c]:
  1070.             ON:
  1071.                Do no change of stack fixups.(for debug)
  1072.             OFF:
  1073.                Do nothing.
  1074. Data-Bss to Chip,[c]:
  1075.             ON:
  1076.                Force Data and Bss hunks to chip memory.
  1077.  
  1078.                You can use the keyword 'chip' or '__chip' once anywhere
  1079.                in a file instead, then the compiler will set this flag 
  1080.                automatically and will also unset it (if required) 
  1081.                on next file.
  1082.  
  1083.                Example1:
  1084.                          UWORD chip my_image[] = 
  1085.                           {
  1086.                              0x0000,
  1087.                              0x0000,
  1088.                            };
  1089.  
  1090.                Example2:
  1091.                          __chip UWORD my_image[] = 
  1092.                           {
  1093.                              0x0000,
  1094.                              0x0000,
  1095.                            };
  1096.             OFF:
  1097.                Use public memory.(any type of memory available).
  1098. Exit,[b]:
  1099.             Leave optimizer options and return to the editor.
  1100.  
  1101.             For more information on the optimizer, see 'TOP.doc'.
  1102.  
  1103. ************************************************************************
  1104. *                           ASSEMBLER OPTIONS                          *
  1105. ************************************************************************
  1106.  
  1107. [c] below = Cycle gadget.
  1108. [s] ..... = String gadget.
  1109. [b] ..... = Button gadget.
  1110.  
  1111.  
  1112. Symbol table to Object,[c]:
  1113.                 YES:
  1114.                      Write symbol table entries (hunk_symbol) to the object
  1115.                      module for the use of symbolic debuggers.
  1116.                 NO:
  1117.                      Do nothing.
  1118. Write Equate File,[c]:
  1119.                 YES:
  1120.                      Write a file under the same name as the file being
  1121.                      assembled but with an '.equ' suffix, and write to it all
  1122.                      'EQU's found.
  1123.                 NO:
  1124.                      Do nothing.
  1125. Verbose,[c]:
  1126.                 Place HCE behind the workbench screen and tell the assembler
  1127.                 to display each line number as it assembles.
  1128.                 When done bring HCE back to the the front again.
  1129. Outpath,[s]:
  1130.                 This determines where each file is to be assembled.
  1131.                 The default place is the 'Ram Disk:'.
  1132. Include Header File,[s]:
  1133.                 Include a header file as if it were in a source code file.
  1134.  
  1135. Include Directory List,[s]:
  1136.                 Give a list of paths to be searched for include files.
  1137.                 Each path is seperated by a comma.
  1138.  
  1139.                 Example:  df0:include,df1:include,DH0:my_includes
  1140.  
  1141. Create Listing File,[s]:
  1142.                 Create a listing file under specified name.
  1143. Disable Optimization,[c]:
  1144.                 YES:
  1145.                      Stop all object code optimizations.
  1146.                 NO:
  1147.                      Do all object code optimizations.
  1148.  
  1149. Display Hashing Stats,[c]:
  1150.                 YES:
  1151.                      Display hashing statistics at the end of assembly.
  1152.                      You must use Verbose (or use Left-Amiga + M) with this,
  1153.                      else you will see nothing.
  1154.                 NO:
  1155.                      Do nothing.
  1156. Debug,[s]:
  1157.                 Display debug information in the CLI.
  1158.                 You must use Verbose (or use Left-Amiga + M) with this,
  1159.                 else you will see nothing.
  1160.  
  1161.                 This is only for people who want to improve the Assembler.
  1162.  
  1163.                 example: 100,200     ,Lists lines 100 to 200.
  1164. Exit,[b]:
  1165.                 Exit assembler options and return to the editor.
  1166.  
  1167.                 For more information on the assembler, see 'A68K.doc'.
  1168.  
  1169. ************************************************************************
  1170. *                           LINKER OPTIONS                             *
  1171. ************************************************************************
  1172.  
  1173. [c] below = Cycle gadget.
  1174. [s] ..... = String gadget.
  1175. [b] ..... = Button gadget.
  1176. [t] ..... = Check box gadget.
  1177.  
  1178. Link,[c]:
  1179.                FROM-ASSEM:
  1180.                      Link all files last assembled.(default)
  1181.                      This is used with the following:
  1182.  
  1183.                             1) 'Compile + Opt + Assem + Link' menu item.
  1184.                             2) 'Comp+O+A+Link' gadget.(does same as above)
  1185.                             3) 'Assemble + Link' menu item.
  1186.                             4) 'Link (a/l/b)' menu item.
  1187.  
  1188.                      The object files are cleaned up for you unless you
  1189.                      set the compilers 'Keep Quad' gadget.
  1190.                FROM-LIST:
  1191.                      Link all files listed in the linkers 'Link List' gadget.
  1192.                      This affects the same menu items and gadgets as above.
  1193.                      The Object files are not deleted when using a Link List.
  1194.                FROM-BOTH:
  1195.                      Do both FROM-ASSEM and FROM-LIST.
  1196.                      Link all files last assembled (eg: 'Compile + Opt + 
  1197.                      Assemble', 'Assemble compiled' etc) with all files 
  1198.                      listed in the 'Link List' gadget. If you did not give
  1199.                      your new program a name then the default name will be 
  1200.                      derived from the first file in the last assembled list.
  1201.                      This is done by removing the '.o' suffix. If this list 
  1202.                      is empty then the first file name in the 'Link List' 
  1203.                      is used. If the file to be used for the default program 
  1204.                      name has no suffix, then a '.exe' suffix is added.
  1205.                      All object files from the last assembled list
  1206.                      are cleaned up (unless compilers 'Keep Quad' gad is set).
  1207.                      The object files listed in the 'Link List' are always 
  1208.                      kept.
  1209. Startup Object,[s]:
  1210.                      This specifies the name+path of the startup object.
  1211. Maths Library,[s]:
  1212.                      This specifies the name+path of the maths library.
  1213. Use,[t]:
  1214.                 This decides whether the maths library is to be linked
  1215.                 or not.
  1216. Other Libraries,[s]:
  1217.                 This holds a list of the common C libraries, (stdio.lib,
  1218.                 string.lib etc). If you make your own C libraries then they 
  1219.                 can be added to this list.
  1220. OutName,[s]:
  1221.                 This decides the name+path of a linked program. If this
  1222.                 is left blank then a default name will be used.
  1223.                 (see 'Link' above).
  1224. Verbose,[t]:
  1225.                  Place HCE behind the workbench screen. Print information
  1226.                  about each pass in the CLI. When done bring HCE back to
  1227.                  the front agian.
  1228. Small-Data,[t]:
  1229.                  Set linkers SMALLDATA flag.
  1230. Small-Code,[t]:
  1231.                  Set linkers SMALLCODE flag.
  1232. Link List,[s]:
  1233.                  This holds a list of upto 55 file names (depending on 
  1234.                  length) and is used for the following:
  1235.  
  1236.                  1) To hold names of object files to be linked into an 
  1237.                     executable.
  1238.                  2) To hold names of object files to be joined into a library.
  1239.                  3) To hold names of 'FD' files which are to made into a 
  1240.                     library.
  1241.                  4) To hold object and 'FD' file names to be made into a 
  1242.                     library.
  1243.                     (see 'Link' above and also 'Link' menu).
  1244. Dupe List,[b]:
  1245.                      This copies a list of files (if exist) from the
  1246.                      'Compile List' gadget (See 'Compiler Options') to
  1247.                      the 'Link List' gadget. The suffix for each file name
  1248.                      is changed to a '.o' suffix.
  1249. Check List,[b]:
  1250.                      Check all files in the 'Link List' exist either in
  1251.                      the current directory or at the assemblers 'OutPath'.
  1252.                      (See 'Assembler Options').
  1253. Clear List,[b]:
  1254.                      Clear the 'Link List'. If the list wasn't empty then
  1255.                      a conformation requester will apear.
  1256. Disk To List,[b]:
  1257.                      Get all files ending with a certain pattern and place
  1258.                      them into the 'Link List' string gadget. If the
  1259.                      'Link List' string gadget wasn't empty then the new
  1260.                      names are appended to the already existing ones.
  1261.                      Simply enter the path of the files into the file
  1262.                      requester drawer and then click on the OK gadget.
  1263.                      (also see 'Pattern' below)
  1264. Pattern,[s]:
  1265.                      Enter a pattern or patterns for 'Disk To List'.
  1266.                      Each pattern is separated either by  '+' or ' '.
  1267.                      (eg: .o+.fd  or  .o .fd)
  1268. Load Link List,[b]:
  1269.                      Load a previously saved 'Link List' file.
  1270.                      (Link list files have a '.LL' suffix).
  1271.                      When loading a link list file the following
  1272.                      are changed:
  1273.  
  1274.                        1) The 'Link List' gadget.
  1275.                        2) The maths library 'use' gadget.
  1276.                        3) The 'OutName' gadget.
  1277.  
  1278. Save Link List,[b]:
  1279.                      Save a 'Link List' file.
  1280.                      If you do not add a '.LL' suffix then one is added
  1281.                      for you.
  1282.  
  1283.                      The following are saved to a link list file:
  1284.  
  1285.                        1) The 'Link List'.
  1286.                        2) The maths library 'use' gadget.
  1287.                        3) The 'OutName' gadget'.
  1288. Library Name,[s]:
  1289.                      Hold library name+path for 'FD To Lib' and 'List To Lib'
  1290.                      gadgets below.
  1291. FD To Lib,[b]:
  1292.                      Create a new C library from either FD files, Object
  1293.                      files or a mixture of both.
  1294.                      The FD/Object file names should be entered into
  1295.                      the 'Link List' gadget. This list of files is treat
  1296.                      the same as any other other 'Link List' except it is
  1297.                      only to be used by the 'FD To Lib' and 'List To Lib'
  1298.                      gadgets.(the linker cannot link FD files!)
  1299.  
  1300.                      FD-FILE:
  1301.                        When an FD file is encounted in a 'Link List'
  1302.                        the following is done: 
  1303.  
  1304.                        1) The FD file is translated into many stub files.
  1305.                        2) One stub file per function found.
  1306.                        3) '#private' functions are ignored.
  1307.                        4) Each stub is assembled and appended to a temporary
  1308.                           library, which has a similar name to the FD file.
  1309.                        5) When the FD file is done the temp lib is appended
  1310.                           to the final library who's name and path is
  1311.                           set in the 'Library Name' gadget.
  1312.                        6) Cleanup temporary files.
  1313.  
  1314.                      OBJECT-FILE:
  1315.                        When an Object file is encounted in a 'Link List,'
  1316.                        it is appended directly to the final library.
  1317.                        note: A library can be made from upto 55 files,
  1318.                              depending on whether all names will fit into 
  1319.                              the 'Link List' gadget.
  1320.  
  1321.                       The stub files and temperary libs are created at the
  1322.                       path set by the assemblers 'Outpath' option. This
  1323.                       path defaults to the 'Ram Disk:' and should be
  1324.                       changed (if not already) to a disk drive
  1325.                       or hard drive if you are low on memory.
  1326.  
  1327.                       If you want to examine the files which wrere produced
  1328.                       while making a library then set the Compilers
  1329.                       'Keep Quad' gadget to 'YES'.
  1330. List To Lib,[b]:
  1331.                       Currently this does the same as 'FD To Lib'.
  1332.  
  1333. Exit,[b]:
  1334.                       Exit linker options and return to the editor.
  1335.  
  1336. ************************************************************************
  1337. *                            PREFERENCES                               *
  1338. ************************************************************************
  1339.  
  1340. [c] below = Cycle gadget.
  1341. [s] ..... = String gadget.
  1342. [i] ..... = Integer gadget.
  1343. [b] ..... = Button gadget.
  1344. [p] ..... = Colour Palette gadget.
  1345. [sl] .... = Slider gadget.
  1346.  
  1347. [p]:
  1348.             The first preferences gadget has no name and is the 
  1349.             Colour palette gadget. This gadget allows you to select upto 
  1350.             8 colours from HCE's 16 colour palette.
  1351.  
  1352. Red,[sl]:
  1353. Green,[sl]:
  1354. Blue,[sl]:
  1355.             The red green and blue slider gadgets allow you to mix colours
  1356.             selected from the Colour Palette gadget.
  1357.  
  1358. Set Pen Colour,[b]:
  1359.             This will change the editors text colour to the currently 
  1360.             selected palette colour.
  1361. Set Paper Colour,[b]:
  1362.             This will change the editors background colour to the currently 
  1363.             selected palette colour.
  1364. Set Mark Colour,[b]:
  1365.             This will change the editors marking out colour to the currently 
  1366.             selected palette colour.
  1367. Tab,[i]:
  1368.             This decides how many character positions the cursor is to move
  1369.             for each press of the tab key.(default is 8)
  1370. Run,[c]:
  1371.             WAIT-FOR-DELAY:
  1372.                            After creating then running an executable this
  1373.                            will cause a small pause before returning to
  1374.                            the editor.(default)
  1375.             WAIT-FOR-KEY:
  1376.                            After creating then running an executable this
  1377.                            will wait for a key press(any key) or left mouse
  1378.                            button before returning to the editor.
  1379. Cancel,[b]:
  1380.             If you have changed any of the above gadgets and have not 
  1381.             left the preferences window, then this gadget  will cancel 
  1382.             the changes.
  1383. Load Default Config,[b]:
  1384.             This will load the default configuration file which is loaded 
  1385.             on HCE's startup. The default config is searched for in the 
  1386.             following places:
  1387.  
  1388.                            1) The current directory.
  1389.                            2) The 'devs/' directory of the bootdisk.
  1390.                            3) The 's/' directory of the bootdisk.
  1391. Save Default Config,[b]:
  1392.             This will save changes made to HCE, to the default config
  1393.             file which was loaded on HCE's startup. If there was no 
  1394.             default config file then a new config file is written to the
  1395.             'devs/' directory of your bootdisk.
  1396.             All of HCE's Cycle and String gadgets are saved to the 
  1397.             'hce.config' file except the following:
  1398.  
  1399.                1) 'Compile'      cycle  gadget   -   'Compiler-options'.
  1400.                2) 'Compile List' string gadget   -   'Compiler-options'.
  1401.                3) 'Pattern'      string gadget   -   'Compiler-options'.
  1402.                4) 'Link'         cycle  gadget   -   'Linker-options'.
  1403.                5) 'Link List'    string gadget   -   'Linker-options'.
  1404.                6) 'Pattern'      string gadget   -   'Linker-options'.
  1405.                7) 'Library Name' string gadget   -   'Linker-options'.
  1406.                8) Find window    string gadget
  1407.                9) Find/Replace   string gadgets
  1408.  
  1409. Load Other,[b]:
  1410.             Load a configuration file saved with 'Save Other'.
  1411. Save Other,[b]:
  1412.             Same as 'Save Default Config' except you choose the file name.
  1413. Exit,[b]:
  1414.             Leave preferences.
  1415.  
  1416. ************************************************************************
  1417. *                            KEY SHORT CUTS                            *
  1418. ************************************************************************
  1419.  
  1420. Function Keys:
  1421. --------------
  1422.  
  1423.                 F1     - Compile only(test)
  1424.                 F2     - Compile + Optimize
  1425.                 F3     - Compile + Opt + Assemble
  1426.                 F4     - Compile + Assem List
  1427.                 F5     - Compile + Opt + Assem + Link
  1428.                 F6     - Assemble this file
  1429.                 F7     - Assemble compiled
  1430.                 F8     - Assemble selected
  1431.                 F9     - Assemble + Link
  1432.                 F10    - Link (a/l/b)
  1433.  
  1434. Shifted Function Keys:
  1435. ----------------------
  1436.  
  1437.           Shift+F1     - Go to or near first error in (editor) C source file
  1438.           Shift+F2     - ............. second error ........................
  1439.           Shift+F3     - ............. third error .........................
  1440.           Shift+F4     - ............. fourth error ........................
  1441.           Shift+F5     - ............. fifth error..........................
  1442.  
  1443. Right-Amiga + ?:
  1444. ----------------
  1445.  
  1446.    Right-Amiga + E     - Reprint first error in message box.
  1447.    Right-Amiga + W     - Reprint first warning in message box.
  1448.    Right-Amiga + /     - Open preferences window.
  1449.    Right-Amiga + 1     - Show new executables name and size.
  1450.    Right-Amiga + Q     - Quit with query.
  1451.    Right-Amiga + L     - Load a source code file.
  1452.    Right-Amiga + O     - Append a source code file.
  1453.    Right-Amiga + S     - Save a source code file.
  1454.    Right-Amiga + V     - Save a source code file under a new name.
  1455.    Right-Amiga + K     - Run Linked.
  1456.    Right-Amiga + D     - Delete Linked.
  1457.    Right-Amiga + M     - Mark block.
  1458.    Right-Amiga + H     - Hide block.
  1459.    Right-Amiga + X     - Cut block.
  1460.    Right-Amiga + C     - Copy block.
  1461.    Right-Amiga + I     - Insert block.
  1462.    Right-Amiga + P     - Print block.
  1463.    Right-Amiga + F     - Find.
  1464.    Right-Amiga + N     - Find Next.
  1465.    Right-Amiga + R     - Find/Replace.
  1466.    Right-Amiga + B     - Place curs to beginning or end of line.
  1467.    Right-Amiga + T     - Place curs to beginning or end of file.
  1468.    Right-Amiga + J     - Place curs to specified line.
  1469.  
  1470. Control Key + ?:
  1471. ----------------
  1472.  
  1473.           Ctrl + O     - Open optimizer options-window.
  1474.           Ctrl + C     - Open compiler options-window.
  1475.           Ctrl + A     - Open assembler options-window.
  1476.           Ctrl + L     - Open linker options-window.
  1477.           Ctrl + S     - Delete all spaces between words if under a space.
  1478.           Ctrl + W     - Delete all characters until space if on a char.
  1479.           Ctrl + E     - Delete from current x cursor position to end of line.
  1480.           Ctrl + D     - Delete enter line.
  1481.           Ctrl + V     - Undelete a line, deleted by S,W,E or D above.
  1482.           Ctrl + U     - Change char under cursor to opposite case.
  1483.  
  1484. Escape Key:
  1485.           This toggles the Editor window between full and standard sizes.
  1486.           note: If toggled to full size important messages may not be seen!.
  1487.  
  1488. When in marking out mode the following can be done in addition to
  1489. the normal block functions:
  1490.  
  1491.            1) Part or hole of a line can be toggled between upper and
  1492.               lower case using the 'U' and 'L' keys as long as the 
  1493.               cursor is still on that line.
  1494.            2) If you have made a function in a file which contains many
  1495.               functions but do not want to recompile the hole file to test
  1496.               it, then you can mark out the function and select the 
  1497.               'Test' gadget. 
  1498.               You can also mark and test most parts of a C source file as
  1499.               long as that part to be tested does not require any global
  1500.               declarations.
  1501.  
  1502. ************************************************************************
  1503. *                             IMPROVEMENTS                             *
  1504. ************************************************************************
  1505.  
  1506. Here's a list of some of the things I would like to see in the next
  1507. release of HCE:
  1508.  
  1509.            1) Calculator.
  1510.            2) Some ANSI support added to the compiler.
  1511.            3) Own file requester.
  1512.            4) The ability to load precompiled header files.
  1513.            5) A faster version of the optimizer.
  1514.  
  1515. If you have any good ideas for HCE then write to me:
  1516.  
  1517. Jason Petty
  1518. 32 Balder Road
  1519. Norton
  1520. Stockton-On-Tees
  1521. Cleveland. TS20 1BE.
  1522.  
  1523. I cannot reply to all letters but will do my best.
  1524. Have fun with HCE!.
  1525.  
  1526.